﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLNSTL
{
    public partial class frmNghiPhep : Form
    {
        #region Khai báo thuộc tính và các hàm get, set
        int _maNV = -1;
        public int MaNV
        {
            get
            {
                return _maNV;
            }
            set
            {
                try
                {
                    QLNS_TLDataContext dc = new QLNS_TLDataContext();
                    var tmp = from n in dc.NhanViens
                              where n.maNV == value
                              select n;
                    var nv = tmp.FirstOrDefault();
                    txtHoTen.Text = nv.hoTen;
                    txtPhongBan.Text = nv.PhongBan.tenPhongBan;
                    txtChucVu.Text = nv.ChucVu.tenChucVu;

                    _maNV = value;
                }
                catch (Exception)
                {
                    
                }
            }
        }
        
        int _maNghiPhep = -1;
        public int MaNghiPhep
        {
            get { return _maNghiPhep; }
            set
            {
                try
                {
                    QLNS_TLDataContext dc = new QLNS_TLDataContext();
                    var tmp = from n in dc.NghiPheps
                              where n.maNghiPhep == value
                              select n;

                    var np = tmp.FirstOrDefault();
                    dtpNgayDau.Value = (DateTime)np.ngayBatDau;
                    txtSoNgay.Text = np.soNgay.ToString();
                    txtLyDo.Text = np.lyDo;

                    MaNV = (int)np.maNV;

                    _maNghiPhep = value;
                }
                catch (Exception)
                {

                    throw;
                }
            }
        }
        #endregion

        public frmNghiPhep(int maNV)
        {
            InitializeComponent();
            txtSoNgay.Text = "1";
            MaNV = maNV;
        }

        public frmNghiPhep()
        {
            InitializeComponent();
            txtSoNgay.Text = "1";
        }

        private void btHuy_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            Close();
        }

        private void btLuu_Click(object sender, EventArgs e)
        {
            int songay = 1;
            try
            {
                songay = int.Parse(txtSoNgay.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Số ngày nghỉ phải là số lớn hơn 0.");
                return;
            }
            if (songay < 1)
            {
                MessageBox.Show("Số ngày nghỉ phải là số lớn hơn 0.");
                return;
            }
            QLNS_TLDataContext dc = new QLNS_TLDataContext();
            if (_maNghiPhep > 0)
            {
                var np = dc.NghiPheps.Single(p => p.maNghiPhep == _maNghiPhep);
                np.lyDo = txtLyDo.Text;
                np.ngayBatDau = dtpNgayDau.Value;
                np.soNgay = songay;

                dc.SubmitChanges();
                MessageBox.Show("Chỉnh sửa thành công.");
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                int maNP = 1;
                if (dc.NghiPheps.Count() > 0)
                {
                    maNP = (from n in dc.NghiPheps select n.maNghiPhep).Max();
                    maNP++;
                }
                NghiPhep np = new NghiPhep();
                np.maNghiPhep = maNP;
                np.maNV = _maNV;
                np.lyDo = txtLyDo.Text;
                np.ngayBatDau = dtpNgayDau.Value;
                np.soNgay = songay;

                dc.NghiPheps.InsertOnSubmit(np);
                dc.SubmitChanges();

                MessageBox.Show("Thêm nghỉ phép thành công.");
                this.DialogResult = DialogResult.OK;
                this.Close();
            }

        }
    }
}
